#ifndef _WATER_ENEMY_ENTITY_H
#define _WATER_ENEMY_ENTITY_H

#include "AbstractEntity.h"
#include "EffectManager.h"
#include "WaterEnemyData.h"
#include "IArmyState.h"
#include "ArmyData.h"
#include "ArmyEntity.h"



class WaterEnemyEntity : public ArmyEntity
{
protected:
	/*WaterEnemyData* _data;*/
	WaterEnemyData* _armyData;

	//************************************
	// Method:    _updateSprites
	// FullName:  WaterEnemyEntity::_updateSprites
	// Access:    virtual protected 
	// Returns:   void
	// Qualifier:
	//************************************
	virtual void _updateSprites();

	//************************************
	// Method:    _readyForShoot
	// FullName:  WaterEnemyEntity::_readyForShoot
	// Access:    virtual protected 
	// Returns:   void
	// Qualifier:
	//************************************
	virtual void _readyForShoot();

public:
	//************************************
	// Method:    WaterEnemyEntity
	// FullName:  WaterEnemyEntity::WaterEnemyEntity
	// Access:    public 
	// Returns:   
	// Qualifier:
	// Parameter: int id
	// Parameter: int type
	// Parameter: double x
	// Parameter: double y
	//************************************
	WaterEnemyEntity(int id, int type, double x, double y);

	//************************************
	// Method:    WaterEnemyEntity
	// FullName:  WaterEnemyEntity::WaterEnemyEntity
	// Access:    public 
	// Returns:   
	// Qualifier:
	// Parameter: WaterEnemyData * armyData
	//************************************
	WaterEnemyEntity(WaterEnemyData* armyData);

	//************************************
	// Method:    draw
	// FullName:  WaterEnemyEntity::draw
	// Access:    virtual public 
	// Returns:   void
	// Qualifier:
	// Parameter: long timetick
	//************************************
	virtual void draw(long timetick);

	//************************************
	// Method:    update
	// FullName:  WaterEnemyEntity::update
	// Access:    virtual public 
	// Returns:   void
	// Qualifier:
	// Parameter: long timetick
	//************************************
	virtual void update(long timetick);

	//************************************
	// Method:    getAbstractData
	// FullName:  WaterEnemyEntity::getAbstractData
	// Access:    virtual public 
	// Returns:   AbstractData*
	// Qualifier:
	//************************************
	virtual AbstractData* getAbstractData();

	//************************************
	// Method:    updateData
	// FullName:  WaterEnemyEntity::updateData
	// Access:    virtual public 
	// Returns:   void
	// Qualifier:
	// Parameter: int action
	// Parameter: int dataaction
	//************************************
	virtual void updateData(int action ,int dataaction);

	~WaterEnemyEntity(){}

};

#endif